645C - Enduring Exodus - CodeForces Solution


binary search two pointers *1600

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define fast_cin() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;
// long long int n,m,k,flag=0,sz=0,v[51][51],dx[]={0,0,0,1},dy[]={1,0,0,0};
// string s[51];
// vector<pair<long long int,pair<long long int,long long int>>>vv;
// void dfschng(long long int x,long long int y)
// {
//  if(x<0 || y<0 || x>=n || y>=m)
//  {
//   return;
//  }
//  if(v[x][y] || s[x][y]=='*')
//  {
//   return;
//  }
//  //cout<<x<<" "<<y<<"\n";
//  v[x][y]=1;s[x][y]='*';
//  for(long long int i=0;i<4;i++)
//  {
//   long long int xx=x+dx[i],yy=y+dy[i];
//   dfschng(xx,yy);
//  }
// }
// void dfs(long long int x,long long int y)
// {
//  if(x<0 || y<0 || x>=n || y>=m)
//  {
//   return;
//  }
//  if(v[x][y] || s[x][y]=='*')
//  {
//   return;
//  }
//  v[x][y]=1;sz++;
//  if(x==0 || y==0 || x==(n0) || y==(m0))
//  {
//   flag=1;
//  }
//  for(long long int i=0;i<4;i++)
//  {
//   long long int xx=x+dx[i],yy=y+dy[i];
//   dfs(xx,yy);
//  }
// }
// long long int n;
//  cin>>n;
//  for(long long int i=1;i<=n;i+=2)
//  {
//   cout<<i<<" ";
//  }
//  for(long long int i=n-(n&1);i>=1;i-=2)
//  {
//   cout<<i<<" ";
//  }
//  cout<<"\n";
long long int calc(vector<long long int>&v,string s,long long int idx,long long int k)
{
 long long int n,op;
 n=v.size()-1;
 for(long long int i=1;i<=n;i++)
 {
  if(s[i]=='0')
  {
   op=v[min(n,i+idx)]-v[max(1ll,i-idx)-1];
   if(op>k)
   {
    return 1;
   }
  }
 }
 return 0;
}
void solve()
{
 long long int n,k,l,r,m,op=0;
 cin>>n>>k;
 string s;
 cin>>s;
 s='.'+s;
 vector<long long int>v(n+1,0);
 for(long long int i=1;i<=n;i++)
 {
  v[i]=v[i-1]+(s[i]=='0');
 }
 l=0;r=n;
 while(r-l>1)
 {
  m=(l+r)/2;
  if(calc(v,s,m,k))
  {
   r=m;
   op=r;
  }
  else
  {
   l=m;
  }
 }
 cout<<r;
}
int main()
{
    fast_cin();
    long long int t;
    //cin>>t;
    t=1;
    while(t--)
    {
     solve();
    }
   return 0;
}


Comments

Submit
0 Comments
More Questions

766B - Mahmoud and a Triangle
1618C - Paint the Array
469A - I Wanna Be the Guy
1294A - Collecting Coins
1227A - Math Problem
349A - Cinema Line
47A - Triangular numbers
1516B - AGAGA XOOORRR
1515A - Phoenix and Gold
1515B - Phoenix and Puzzle
155A - I_love_username
49A - Sleuth
1541A - Pretty Permutations
1632C - Strange Test
673A - Bear and Game
276A - Lunch Rush
1205A - Almost Equal
1020B - Badge
1353A - Most Unstable Array
770A - New Password
1646B - Quality vs Quantity
80A - Panoramix's Prediction
1354B - Ternary String
122B - Lucky Substring
266B - Queue at the School
1490A - Dense Array
1650B - DIV + MOD
1549B - Gregor and the Pawn Game
553A - Kyoya and Colored Balls
1364A - XXXXX